//package com.wss.service.user.config;
//
//import com.wss.service.user.handler.JwtAuthenticationTokenFilter;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Import;
//import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.config.annotation.web.builders.WebSecurity;
//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
//import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
//import org.springframework.security.web.authentication.logout.LogoutFilter;
//import org.springframework.web.filter.CorsFilter;
//
//
//@Configuration
//@EnableGlobalMethodSecurity(prePostEnabled = true)//开启注解支持
//@Import(DefaultPasswordConfig.class)
//public class SecurityConfigSimple extends WebSecurityConfigurerAdapter {
//
////    /**
////     * 跨域过滤器
////     */
//    @Autowired
//    private CorsFilter corsFilter;
//
//    //    /**
////     * token认证过滤器
////     */
//    @Autowired
//    private JwtAuthenticationTokenFilter authenticationTokenFilter;
//    @Override
//    public void configure(WebSecurity web) throws Exception {
//        //解决静态资源被拦截的问题
//        web.ignoring().antMatchers("/css/**", "/images/**", "/js/**", "/code/**");
//    }
//    /**
//     * http请求方法
//     *
//     * @param http
//     * @throws Exception
//     */
//    @Override
//    protected void configure(HttpSecurity http) throws Exception {
//        /*http.httpBasic() // 开启httpbasic认证
//                .and().authorizeRequests().anyRequest().authenticated();//所有请求都需要认证之后访问*/
//        // 加入用户名密码验证过滤器的前面
//
//
//        System.out.println("-------------------------");
//        // 设置/user开头的请求需要ADMIN权限
//         http.authorizeRequests().antMatchers("/user/**").permitAll()
//         .anyRequest().authenticated();
//
//                // 添加JWT filter
//        http.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
//        // 添加CORS filter
//        http.addFilterBefore(corsFilter, JwtAuthenticationTokenFilter.class);
//        http.addFilterBefore(corsFilter, LogoutFilter.class);
//
//
//        // 设置/product 开头的请求需要ADMIN 或者 PRODUCT权限 并且访问的IP是127.0.0.1
//        /*http.authorizeRequests().antMatchers("/product/**").access
//                ("hasAnyRole('ADMIN','PRODUCT') and hasIpAddress('127.0.0.1')");*/
//
//        // 使用自定义bean完成授权
//        /*http.authorizeRequests().antMatchers("/user/{id}")
//                .access("@myAuthorizationService.check(authentication,request,#id)");*/
//
//
//        //关闭csrf防护
//        //http.csrf().disable();
//        //开启csrf防护. 定义哪些路径不需要防护
//        //http.csrf().ignoringAntMatchers("/user/saveOrUpdate");
//
//        //加载同源域名下iframe页面
//        http.headers().frameOptions().sameOrigin();
//
//        /*http.sessionManagement()// 设置session管理
//            .invalidSessionUrl("/toLoginPage")// session失效之后跳转的路径
//            .maximumSessions(1)// session最大会话数量 1,同一时间只能有一个用户可以登录  互踢
//            .maxSessionsPreventsLogin(true)//如果达到最大会话数量,就阻止登录
//            .expiredUrl("/toLoginPage");// session过期之后跳转的路径*/
//
//
//
//    }
//
//}
